package com.example.terminalservice.utils;

import com.example.terminalservice.common.CodeEnum;
import com.example.terminalservice.common.Constants;
import com.example.terminalservice.exception.MyException;
import org.springframework.web.multipart.MultipartFile;

import java.util.Arrays;
import java.util.UUID;

/**
 * @author 28142
 * @description 文件上传工具类
 * @date 2023/8/11 10:40
 */
public class FileUploadUtils {
    /**
     * 文件校验
     * @author 杨雨盛
     * @date 2023/8/11 10:43
     * @param file
     * @return boolean
     */
    public static boolean fileVerify(MultipartFile file) {
        // 判断文件是否为空
        if (file == null) {
            throw new MyException(CodeEnum.CODE_503.getCode(), "文件不能为空");
        }
        // 校验文件大小
        if (file.getSize() > Constants.FILE_SIZE) {
            throw new MyException(CodeEnum.CODE_503.getCode(), "文件大小不嫩超过2MB");
        }
        // 判断文件名称是否为空
        String filename = file.getOriginalFilename();
        if (filename == null) {
            throw new MyException(CodeEnum.CODE_503.getCode(), "文件名称不能为空");
        }
        if (!filename.contains(".")) {
            throw new MyException(CodeEnum.CODE_503.getCode(), "文件不能没有后缀");
        }
        // 获取文件后缀名
        String suffix = filename.substring(filename.lastIndexOf("."));
        // 根据后缀名判断是否是图片
        if (!Arrays.asList(Constants.IMAGE_TYPE_SUPPORT).contains(suffix)) {
            throw new MyException(CodeEnum.CODE_503.getCode(), "文件格式仅限于图片");
        }
        return true;
    }

    /**
     * 生成uuid
     * @author 杨雨盛
     * @date 2023/8/11 10:44
     * @return java.lang.String
     */
    public static String getUUID() {
        return UUID.randomUUID().toString().replace("-", "");
    }
}
